package com.winhxd.b2c.order.service;

import com.winhxd.b2c.common.domain.PagedList;
import com.winhxd.b2c.common.domain.order.condition.OrderProfitSummaryCondition;
import com.winhxd.b2c.common.domain.order.condition.OrderSalesSummaryCondition;
import com.winhxd.b2c.common.domain.order.condition.OrderSummaryCondition;
import com.winhxd.b2c.common.domain.order.condition.OrderUsersCondition;
import com.winhxd.b2c.common.domain.order.vo.*;

import java.util.List;

/**
 * @Author lijianhua
 * @Description //订单数据
 * @Date 13:55 2019/1/8
 **/
public interface OrderDataStatisticsService {
    /**
     * @Author lijianhua
     * @Description //后台运营数据查询
     * @Date 14:09 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.OrderBusinessSummaryVO
     **/
    OrderBusinessSummaryVO getBusinessSummarySummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //会员我的订单查询数据
     * @Date 14:10 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.Order4meSummaryVO
     **/
    Order4meSummaryVO get4meSummarySummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //一级分销我的订单查询数据
     * @Date 14:10 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.Order4meSummaryVO
     **/
    Order4meSummaryVO get4OneSummarySummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //二级分销我的订单查询数据
     * @Date 14:10 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.Order4meSummaryVO
     **/
    Order4meSummaryVO get4TwoSummarySummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //一级分销商查询数据
     * @Date 14:11 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.OrderDistributionOneSummaryVO
     **/
    OrderDistributionOneSummaryVO getOrderDistributionOneSummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //一级分销商总收益列表
     * @Date 14:11 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.PagedList<com.winhxd.b2c.common.domain.order.vo.OrderProfitVO>
     **/
    PagedList<OrderProfitVO> findDistOneOrderProfitSummary(OrderProfitSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //一级分销商线下收益列表
     * @Date 14:11 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.PagedList<com.winhxd.b2c.common.domain.order.vo.OrderProfitVO>
     **/
    PagedList<OrderProfitVO> findDistOneOrderReferralsProfitSummary(OrderProfitSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //二级分销商查询数据
     * @Date 14:12 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.OrderDistributionTwoSummaryVO
     **/
    OrderDistributionTwoSummaryVO getOrderDistributionTwoSummary(OrderSalesSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //二级分销商总收益列表
     * @Date 14:12 2019/1/8
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.PagedList<com.winhxd.b2c.common.domain.order.vo.OrderProfitVO>
     **/
    PagedList<OrderProfitVO> findDistTwoOrderProfitSummary(OrderProfitSummaryCondition condition);

    /**
     * @Author lijianhua
     * @Description //用户收益查询
     * @Date 11:40 2019/1/10
     * @Param [condition]
     * @return java.util.List<com.winhxd.b2c.common.domain.order.vo.OrderUsersProfitListVO>
     **/
    List<OrderUsersProfitListVO> findOrderUsersProfitList(OrderUsersCondition condition);

    /**
     * @Author lijianhua
     * @Description //获取用户基本信息
     * @Date 15:30 2019/1/12
     * @Param [condition]
     * @return com.winhxd.b2c.common.domain.order.vo.OrderUserBaseSummaryVO
     **/
    OrderUserBaseSummaryVO getUserBaseSummarySummary(OrderSummaryCondition condition);
}
